(map-y-or-n-p): Make bindings of user-defined keys be each a vector
authorRoland McGrath <roland@gnu.org>
Wed, 31 Mar 1993 22:20:33 +0000 (22:20 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 31 Mar 1993 22:20:33 +0000 (22:20 +0000)
containing the user's binding, rather than 'user.  Check (vectorp DEF)
and call the vector's elt, rather than checking (eq 'user DEF) and
calling something completely random.

lisp/map-ynp.el

index c3cce3abc0772efd483b50380c7b1a939584fd82..22e9973cb01129d8e7d88e41825b268117000333 100644 (file)
@@ -80,11 +80,11 @@ Returns the number of actions taken."
                                           action-alist ", ")
                                " ")
                      ""))
-        ;; Make a map that defines all the user keys as `user'.
+        ;; Make a map that defines each user key as a vector containing
+        ;; its definition.
         (map (cons 'keymap
-                   (append (mapcar (function
-                                    (lambda (elt)
-                                      (cons (car elt) 'user)))
+                   (append (mapcar (lambda (elt)
+                                     (cons (car elt) (vector (nth 1 elt))))
                                    action-alist)
                            query-replace-map)))
         (actions 0)
@@ -175,9 +175,9 @@ the current %s and exit."
                   (setq next (` (lambda ()
                                   (setq next '(, next))
                                   '(, elt)))))
-                 ((eq def 'user)
+                 ((vectorp def)
                   ;; A user-defined key.
-                  (if (funcall (nth 1 tail) elt) ;Call its function.
+                  (if (funcall (aref def 0) elt) ;Call its function.
                       ;; The function has eaten this object.
                       (setq actions (1+ actions))
                     ;; Regurgitated; try again.